//	PS#448: Surface of portal view to other side
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.22.949.2248
//
// Parameters:
//
//   float4 ProbeTextureOffsets;
//   float4 gAmbientColor;
//   float4 gAmbientColor2;
//   float3 gCameraPos;
//   float gFadeAmount;
//   float4 gFogColor;
//   float4 gFogParams;
//   float4 gLightAtten[4];
//   float4 gLightColor[4];
//   float3 gLightDirection[4];
//   bool gLightEnable[8];
//   float3 gLightPos[4];
//   float4x4 gLightViewProj[4];
//   bool gPreMultiplyAlpha;
//   float4 gSpotOffsets[16];
//   sampler2D gSunSampler;
//   float gTime;
//   sampler2D pBlendDiffuseMap;
//   float pDistanceBlend;
//   sampler2D pProbeTexture;
//
//
// Registers:
//
//   Name                Reg   Size
//   ------------------- ----- ----
//   gPreMultiplyAlpha   b0       1
//   gLightEnable        b2       3
//   gTime               c0       1
//   gCameraPos          c1       1
//   gSpotOffsets        c22      8
//   gFogParams          c38      1
//   gFogColor           c39      1
//   gFadeAmount         c40      1
//   ProbeTextureOffsets c45      1
//   pDistanceBlend      c46      1
//   gLightDirection     c74      1
//   gLightPos           c74      3
//   gLightColor         c78      3
//   gLightAtten         c82      3
//   gLightViewProj      c90      4
//   gAmbientColor       c106     1
//   gAmbientColor2      c107     1
//   pProbeTexture       s0       1
//   pBlendDiffuseMap    s1       1
//   gSunSampler         s8       1
//
//
// Default values:
//
//   pDistanceBlend
//     c46  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c2, 6.28318548, -3.14159274, -9.99999997e-007, 1.44269502
    def c3, 0.125, 1, 0, 0
    def c4, 0.5, -0.5, 0.500488281, 0
    def c5, 0.5, 1, -0.477464825, 0
    dcl_texcoord v0.xyz
    dcl_texcoord1_pp v1.xyz
    dcl_texcoord2 v2.xyw
    dcl_texcoord3 v3.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s8
    nrm_pp r0.xyz, v1
    rcp r0.w, v2.w
    mul r1.xy, r0.w, v2
    mul r1.xy, r1, c45.zwzw
    mov r2.xz, c5
    mad r1.xy, r1, r2.x, c45
    add r1.xy, r1, c5.x
    mov_sat r1.x, r1.x
    add_sat r1.y, -r1.y, c5.y
    texld_pp r1, r1, s0
    mad r0.w, c0.x, r2.z, r2.x
    frc r0.w, r0.w
    mad r0.w, r0.w, c2.x, c2.y
    sincos r3.xy, r0.w
    frc r4, v3_abs.xyxy
    mul r0.w, r3.y, c5.x
    mad r1.w, r3.x, c5.x, c5.x
    mad r1.w, r3.y, c5.x, r1.w
    mad r0.w, r3.x, c5.x, -r0.w
    add r0.w, r0.w, c5.x
    mad r1.w, r4.x, -r3.x, r1.w
    mad r2.y, r4.y, -r3.y, r1.w
    mad r0.w, r4.z, r3.y, r0.w
    mad r2.z, r4.w, -r3.x, r0.w
    texld_pp r3, r2.yzzw, s1
    mad_pp r0.w, r0.z, c5.x, c5.x
    mul_pp r1.w, r0.w, r0.w
    mad_pp r0.w, r0.w, -r0.w, c5.y
    mul_pp r2.yzw, r0.w, c107.xxyz
    mad_pp r2.yzw, c106.xxyz, r1.w, r2
    if b2
      add r4.xyz, c74, -v0
      dp3 r0.w, r4, r4
      add r1.w, r0.w, -c82.x
      mul_sat r1.w, r1.w, c82.w
      add_pp r1.w, -r1.w, c5.y
      rsq r0.w, r0.w
      mul_pp r4.xyz, r4, r0.w
      dp3_pp r0.w, r0, r4
      max_pp r3.w, r0.w, c5.w
      mul_pp r4.xyz, r3.w, c78
      mad_pp r2.yzw, r4.xxyz, r1.w, r2
    endif
    if b3
      add r4.xyz, c75, -v0
      dp3 r0.w, r4, r4
      add r1.w, r0.w, -c83.x
      mul_sat r1.w, r1.w, c83.w
      add_pp r1.w, -r1.w, c5.y
      rsq r0.w, r0.w
      mul_pp r4.xyz, r4, r0.w
      dp3_pp r0.w, r0, r4
      max_pp r3.w, r0.w, c5.w
      mul_pp r4.xyz, r3.w, c79
      mad_pp r2.yzw, r4.xxyz, r1.w, r2
    endif
    if b4
      add r4.xyz, c76, -v0
      dp3 r0.w, r4, r4
      add r1.w, r0.w, -c84.x
      mul_sat r1.w, r1.w, c84.w
      add_pp r1.w, -r1.w, c5.y
      rsq r0.w, r0.w
      mul_pp r4.xyz, r4, r0.w
      dp3_pp r0.w, r0, r4
      max_pp r3.w, r0.w, c5.w
      mul_pp r4.xyz, r3.w, c80
      mad_pp r2.yzw, r4.xxyz, r1.w, r2
    endif
    lrp r4.xyz, c46.x, r3, r1
    mul_pp r1.xyz, r2.yzww, r4
    mad r3, v0.xyzx, c5.yyyw, c5.wwwy
    dp4 r2.y, r3, c90
    dp4 r2.z, r3, c91
    dp4 r0.w, r3, c92
    dp4 r1.w, r3, c93
    rcp r1.w, r1.w
    mul r2.yz, r2, r1.w
    mad r2.yz, r2, c4.xxyw, c4.z
    add r0.w, r0.w, c2.z
    mad r3.xy, c22, r2.x, r2.yzzw
    texld r3, r3, s8
    add r1.w, r0.w, -r3.x
    cmp_pp r1.w, r1.w, c5.w, c5.y
    mad r3.xy, c23, r2.x, r2.yzzw
    texld r3, r3, s8
    add r2.w, r0.w, -r3.x
    cmp_pp r2.w, r2.w, c5.w, c5.y
    add_pp r1.w, r1.w, r2.w
    mad r3.xy, c24, r2.x, r2.yzzw
    texld r3, r3, s8
    add r2.w, r0.w, -r3.x
    cmp_pp r2.w, r2.w, c5.w, c5.y
    add_pp r1.w, r1.w, r2.w
    mad r3.xy, c25, r2.x, r2.yzzw
    texld r3, r3, s8
    add r2.w, r0.w, -r3.x
    cmp_pp r2.w, r2.w, c5.w, c5.y
    add_pp r1.w, r1.w, r2.w
    mad r3.xy, c26, r2.x, r2.yzzw
    texld r3, r3, s8
    add r2.w, r0.w, -r3.x
    cmp_pp r2.w, r2.w, c5.w, c5.y
    add_pp r1.w, r1.w, r2.w
    mad r3.xy, c27, r2.x, r2.yzzw
    texld r3, r3, s8
    add r2.w, r0.w, -r3.x
    cmp_pp r2.w, r2.w, c5.w, c5.y
    add_pp r1.w, r1.w, r2.w
    mad r3.xy, c28, r2.x, r2.yzzw
    texld r3, r3, s8
    add r2.w, r0.w, -r3.x
    cmp_pp r2.w, r2.w, c5.w, c5.y
    add_pp r1.w, r1.w, r2.w
    mad r2.xy, c29, r2.x, r2.yzzw
    texld r2, r2, s8
    add r0.w, r0.w, -r2.x
    cmp_pp r0.w, r0.w, c5.w, c5.y
    add_pp r0.w, r1.w, r0.w
    mad_pp r0.w, r0.w, -c3.x, c3.y
    dp3_sat_pp r0.x, r0, c77
    mad_pp r0.x, r0.w, -r0.x, c5.y
    mad_pp r0.x, r0.x, c5.x, c5.x
    add r0.yzw, c1.xxyz, -v0.xxyz
    dp3 r0.y, r0.yzww, r0.yzww
    add r0.y, r0.y, -c38.x
    mul_sat_pp r0.y, r0.y, c38.z
    mul_pp r0.y, r0.y, c38.w
    mul_pp r0.y, r0.y, c2.w
    exp_pp r0.y, r0.y
    rcp_pp r0.y, r0.y
    mad_pp r0.xzw, r1.xyyz, r0.x, -c39.xyyz
    mad_pp r0.xyz, r0.y, r0.xzww, c39
    if b0
      mul_pp r0.xyz, r0, c40.x
    endif
    mov_pp r0.w, c40.x
    mov_pp oC0, r0

// approximately 155 instruction slots used (10 texture, 145 arithmetic)
 